package com.youlai.system.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.system.model.entity.SysUserRole;

import java.util.List;
import java.util.Map;

public interface SysUserRoleService extends IService<SysUserRole> {

    /**
     * 保存用户角色
     *
     * @param userId
     * @param roleIds
     * @return
     */
    boolean saveUserRoles(Long userId, List<Long> roleIds);

    /**
     * 判断角色是否存在绑定的用户
     *
     * @param roleId 角色ID
     * @return true：已分配 false：未分配
     */
    boolean hasAssignedUsers(Long roleId);


    /**
     * 判断用户是否存在绑定的角色
     *
     * @param userId 角色ID
     * @return true：已分配 false：未分配
     */
    boolean hasAssignedRoles(Long userId);

    /**
     * 判断用户是否存在绑定指定的角色
     *
     * @param userId
     * @param roleId
     * @return
     */
    boolean hasAssignedRole(Long userId, Long roleId);

    /**
     * @return
     */
    Map<Long, SysUserRole> getRoleUserCountMap();

    /**
     * 获取角色对应的所有用户
     *
     * @param roleId
     * @return
     */
    List<Long> getUserIdBy(Long roleId);


    boolean roleHasUsed(List<Long> roleIdList);

    Long roleUserCount(Long roleId);
}
